]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
altTab: try to avoid showing the switcher when "flipping"
authorDan Winship <danw@gnome.org>
Tue, 5 Jul 2011 21:21:22 +0000 (17:21 -0400)
committerDan Winship <danw@gnome.org>
Wed, 6 Jul 2011 13:03:42 +0000 (09:03 -0400)
Use a longer fade-in time, but with an inout transition, so that the
dialog starts fading in very slowly and then picks up speed after
150ms or so. That way if the user releases Alt+Tab right away, they'll
never actually see the dialog.

https://bugzilla.gnome.org/show_bug.cgi?id=652346

js/ui/altTab.js

index 5084ca7e097ee67b43fee4e54895a1a99bece8cb..ad655d941bea6b4df66efc8ceda48c3769f44295 100644 (file)
@@ -14,7 +14,8 @@ const Tweener = imports.ui.tweener;
 
 const POPUP_APPICON_SIZE = 96;
 const POPUP_SCROLL_TIME = 0.10; // seconds
-const POPUP_FADE_TIME = 0.1; // seconds
+const POPUP_FADE_IN_TIME = 0.4; // seconds
+const POPUP_FADE_OUT_TIME = 0.1; // seconds
 
 const APP_ICON_HOVER_TIMEOUT = 200; // milliseconds
 
@@ -182,10 +183,15 @@ AltTabPopup.prototype = {
             return false;
         }
 
+        // Using easeInOutExpo over 400ms gives us 150ms of "nearly
+        // invisible" (less than 10% opacity), followed by a 100ms
+        // tween in (to 90% opacity, with the last 10% coming over the
+        // next 150ms). So if the user releases Alt quickly after we
+        // start tweening, they'll never see the switcher.
         Tweener.addTween(this.actor,
                          { opacity: 255,
-                           time: POPUP_FADE_TIME,
-                           transition: 'easeOutQuad'
+                           time: POPUP_FADE_IN_TIME,
+                           transition: 'easeInOutExpo'
                          });
 
         return true;
@@ -368,7 +374,7 @@ AltTabPopup.prototype = {
         if (this.actor.visible) {
             Tweener.addTween(this.actor,
                              { opacity: 0,
-                               time: POPUP_FADE_TIME,
+                               time: POPUP_FADE_OUT_TIME,
                                transition: 'easeOutQuad',
                                onComplete: Lang.bind(this,
                                    function() {